package van.planifolia.lambda;

/**
 * Created by Intellij IDEA<br>
 *
 * @author Planifolia.Van
 * @version 1.0
 * @date 2022/11/3 17:26
 */
public class Lambda3 {
    public static void main(String[] args) {
        // 准备数据
        Integer[] integers = {1, 2, 13, 19};
        // 使用lambda实现有参数有返回值的函数式接口，切记items并不是我们我们在上面定义的源数据，而是只是一个标记，你可以理解为
        // 它只是一个形参，用来接受调用方法处传过来的参数，也就是我们在下面test方法中传过来的integers
        test(items -> {
            int sum = 0;
            for (Integer integer : items) {
                sum=sum+integer;
            }
            return sum;
        }, integers);
    }
    /**
     * 还是创建一个测试方法来调用求和方法
     *
     * @param match    被实现的函数式接口
     * @param integers 被计算的数组
     */
    public static void test(Match match, Integer[] integers) {
        System.out.println("数组的和为:" + match.sum(integers));
    }
}
/**
 * 函数式接口计算数组和
 */
@FunctionalInterface
interface Match {
    Integer sum(Integer[] integers);
}
